home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / C⁄C++ / Peter's Final Project / src / camera.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-10  |  3.2 KB  |  88 lines  |  [TEXT/KAHL]

  1. /*
  2.  *  Peter's Final Project -- A texture mapping demonstration
  3.  *  © 1995, Peter Mattis
  4.  *
  5.  *  E-mail:
  6.  *  petm@soda.csua.berkeley.edu
  7.  *
  8.  *  Snail-mail:
  9.  *   Peter Mattis
  10.  *   557 Fort Laramie Dr.
  11.  *   Sunnyvale, CA 94087
  12.  *
  13.  *  Avaible from:
  14.  *  http://www.csua.berkeley.edu/~petm/final.html
  15.  *
  16.  *  This program is free software; you can redistribute it and/or modify
  17.  *  it under the terms of the GNU General Public License as published by
  18.  *  the Free Software Foundation; either version 2 of the License, or
  19.  *  (at your option) any later version.
  20.  *
  21.  *  This program is distributed in the hope that it will be useful,
  22.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  23.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  24.  *  GNU General Public License for more details.
  25.  *
  26.  *  You should have received a copy of the GNU General Public License
  27.  *  along with this program; if not, write to the Free Software
  28.  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  29.  */
  30.  
  31. #ifndef __CAMERA_H__
  32. #define __CAMERA_H__
  33.  
  34. #include "matrix.vector.h"
  35. #include "type.defs.h"
  36.  
  37. CAMERA make_camera (void);
  38. void free_camera (CAMERA);
  39.  
  40. void camera_determine_matrices (CAMERA);
  41.  
  42. #define camera_pos(c)                  ((c)->pos)
  43. #define camera_vpn(c)                  ((c)->vpn)
  44. #define camera_vup(c)                  ((c)->vup)
  45. #define camera_u_min(c)                ((c)->u_min)
  46. #define camera_u_max(c)                ((c)->u_max)
  47. #define camera_v_min(c)                ((c)->v_min)
  48. #define camera_v_max(c)                ((c)->v_max)
  49. #define camera_matrix_orientation(c)   ((c)->orientation)
  50. #define camera_matrix_mapping(c)       ((c)->mapping)
  51.  
  52. #define camera_pos_x(c)  (vector_x(camera_pos(c)))
  53. #define camera_pos_y(c)  (vector_y(camera_pos(c)))
  54. #define camera_pos_z(c)  (vector_z(camera_pos(c)))
  55. #define camera_pos_w(c)  (vector_w(camera_pos(c)))
  56.  
  57. #define camera_vpn_x(c)  (vector_x(camera_vpn(c)))
  58. #define camera_vpn_y(c)  (vector_y(camera_vpn(c)))
  59. #define camera_vpn_z(c)  (vector_z(camera_vpn(c)))
  60. #define camera_vpn_w(c)  (vector_w(camera_vpn(c)))
  61.  
  62. #define camera_vup_x(c)  (vector_x(camera_vup(c)))
  63. #define camera_vup_y(c)  (vector_y(camera_vup(c)))
  64. #define camera_vup_z(c)  (vector_z(camera_vup(c)))
  65. #define camera_vup_w(c)  (vector_w(camera_vup(c)))
  66.  
  67. #define set_camera_pos_x(c, k)     (camera_pos_x(c) = (k))
  68. #define set_camera_pos_y(c, k)     (camera_pos_y(c) = (k))
  69. #define set_camera_pos_z(c, k)     (camera_pos_z(c) = (k))
  70. #define set_camera_pos_w(c, k)     (camera_pos_w(c) = (k))
  71.  
  72. #define set_camera_vpn_x(c, k)     (camera_vpn_x(c) = (k))
  73. #define set_camera_vpn_y(c, k)     (camera_vpn_y(c) = (k))
  74. #define set_camera_vpn_z(c, k)     (camera_vpn_z(c) = (k))
  75. #define set_camera_vpn_w(c, k)     (camera_vpn_w(c) = (k))
  76.  
  77. #define set_camera_vup_x(c, k)     (camera_vup_x(c) = (k))
  78. #define set_camera_vup_y(c, k)     (camera_vup_y(c) = (k))
  79. #define set_camera_vup_z(c, k)     (camera_vup_z(c) = (k))
  80. #define set_camera_vup_w(c, k)     (camera_vup_w(c) = (k))
  81.  
  82. #define set_camera_u_min(c, k)     (camera_u_min(c) = (k))
  83. #define set_camera_u_max(c, k)     (camera_u_max(c) = (k))
  84. #define set_camera_v_min(c, k)     (camera_v_min(c) = (k))
  85. #define set_camera_v_max(c, k)     (camera_v_max(c) = (k))
  86.  
  87. #endif /* __CAMERA_H__ */
  88.